#include <mysql/mysql.h>
#include <stdio.h>

int main(void)
{
    //初始化连接
    MYSQL *mysql = mysql_init(NULL);

    //mysql 返回值要接收 就是初始化好的结构体指针
    // MYSQL *mysql = NULL;
    // mysql = mysql_init(mysql);
    
    //使用库中的检验错误的函数 mysql_error
    printf("%s", mysql_error(mysql));

    // 建立到mysql服务器的连接 并且发送账号密码
    mysql_real_connect(mysql, "localhost", "root", "123456", "test_connect", 0, NULL, 0);
    printf("%s", mysql_error(mysql));
    

    //只要是执行select sql语句，必须接收返回值，并且释放
    //因为如果不接收返回值，下一次接收可能会接收到上一次的数据，导致数据错乱 
    //发送sql语句
    mysql_query(mysql, "select * from class");

    //通过mysql_store_result()函数获取mysql_query的返回值
    MYSQL_RES * res = mysql_store_result(mysql);
    //加返回值的验证
    if(mysql_num_rows(res) != 0)
    {
        //对数据进行处理
        MYSQL_ROW row;
        //从结果集中拿出一行，如果结果集中没有更多数据或结果集为空，则返回NULL
        while((row = mysql_fetch_row(res)))
        {
            unsigned int colunm;
            colunm = mysql_num_fields(res);
            for(int i = 0; i < colunm; i++)
            {
                printf("%s  ", row[i]);
            }
            printf("\n");
        }
    }
    mysql_free_result(res);
    //使用完成只之后要关闭连接
    mysql_close(mysql);
    return 0;
}